วิธีติดตั้ง Nginx HTTPS Web Server พร้อม Free SSL บน Linux
Published in:2024-03-09 | Categories: Linux Tutorial

เตรียมความพร้อม

ในบทความนี้ต้องการ domain 1 ชื่อที่ทำการติดตั้งให้ชี้ไปที่ server ที่ต้องการติดตั้ง web server เป็นที่เรียบร้อยแล้ว ในที่นี้จะใช้ domain ชื่อ test.sugoidev.com

ติดตั้ง Nginx web server

1. ติดตั้ง Nginx โดยใช้คำสั่งด้านล่าง

1
$ sudo apt-get install nginx

2. เข้าไปใน sites-available directory ของ nginx

1
$ cd /etc/nginx/sites-available

3. สร้างไฟล์ config โดยใช้ template ด้านล่างตั้งชื่อเป็น domain ของตัวเองเพื่อให้จำได้ง่ายในที่นี้ใช้ชื่อ test.sugoidev.com

1
2
3
4
5
6
7
8
9
server {
listen 80; #รับการเชื่อมต่อผ่าน port 80 บน ipv4
listen [::]:80; #รับการเชื่อมต่อผ่าน port 80 บน ipv6
root /var/www/test.sugoidev.com; #path ที่เก็บไฟล์เว็บ
server_name test.sugoidev.com; #ชื่อ domain
location / {
try_files $uri $uri/ /index.html;
}
}

4. เข้าไปใน sites-available directory ของ nginx โดยใช้คำสั่งด้านล่าง

1
$ cd /etc/nginx/modules-enabled
1
$ sudo ln -s /etc/nginx/sites-available/test.sugoidev.com test.sugoidev.com

6. สร้าง directory เก็บไฟล์เว็บและหน้า index.html โดยใช้สำสั่งข้างล่าง

1
$ sudo mkdir -p /var/www/test.sugoidev.com && echo "Hello my website" > /var/www/test.sugoidev.com/index.html

7. ทดสอบ config nginx ว่าถูกต้องหรือไม่โดยใช้คำสั่งด้านล่าง

1
$ sudo nginx -t

8. ทำการ restart nginx โดยใช้สำสั่งด้านล่าง

1
$ sudo /etc/init.d/nginx restart

9. ทดสอบหน้าเว็บโดยเปิดเว็บผ่าน web browser หากทุกอย่างถูกต้องจะพบหน้าเว็บตามภาพด้านล่าง แต่ยังยังคงเห็นเป็น http อยู่

ติดตั้ง Nginx web server

10. ติดตั้ง Let’s Encrypt Certbot โดยใช้คำสั่งด้านล่าง

1
$ sudo apt-get install certbot python3-certbot-nginx

11. เริ่มขอ SSL จาก Let’s Encrypt โดยใช้คำสั่งด้านล่าง

1
$ sudo certbot

12. เมื่อเข้าใช้งานครั้งแรกตัว certbot จะถาม email ของเราเพื่อที่จะเตือนเราหากมีปัญหาในการต่อ SSL แบบอัตโนมัติให้ใส่ email ที่ต้องการรับการแจ้งเตือนลงไป แล้วกด Enter

13. ต่อมา certbot จะให้ดูข้อตกลงการใช้งานและยอมรับ พิมพ์ “Yes” แล้วกด Enter

14. ต่อมา certbot ว่าจะรับข่าวสารจาก EFF news หรือไม่ พิมพ์ “No” แล้วกด Enter

15. ต่อมา certbot จะให้เลือก domain ที่เราต้องการขอ SSL ให้ระบุลำดับของ domain ที่ต้องการแล้วกด Enter

16. เมื่อขอ SSL เสร็จเป็นที่เรียบร้อย จะแสดงข้อมูลตามภาพด้านล่าง

17. ทดสอบหน้าเว็บโดยเปิดเว็บผ่าน web browser จะเห็นได้ว่าเป็น https เรียบร้อยแล้ว

Prev:
ตั้งค่า Nginx เป็น Proxy Server สำหรับ API บน Docker, NodeJS, Python และอื่นๆ
Next:
วิธีติดตั้ง IPsec VPN Server ไว้ใช้งานแบบง่ายๆ บน Linux